Agentic AI Engineering setup - Incremental changes accumulated over-time - #6
Open
lakshyads05 wants to merge 45 commits into
Open
Agentic AI Engineering setup - Incremental changes accumulated over-time#6lakshyads05 wants to merge 45 commits into
lakshyads05 wants to merge 45 commits into
Conversation
…ux, neovim, opensuperwhisper Removed 1Password and SuperWhisper from the setup; added opencode, wezterm, tmux, neovim, and opensuperwhisper (open-source SuperWhisper replacement) across Brewfile, setup.sh, verify.sh, docs/inventory.md, and README.md per the repo's add/remove tool checklist.
Consolidates ghostty, git, linearmouse, and starship configs under configs/ for consistency, and adds a wezterm config alongside the existing terminal emulator options.
Matches JetBrainsMono Nerd Font at size 14 and mirrors Ghostty's custom split creation/navigation/zoom keybinds for consistent muscle memory across both terminals.
Replace the imperative Brewfile/setup.sh bootstrap with a declarative flake, move live configs under home/, and update docs plus verify for the new rebuild workflow. Co-authored-by: Cursor <cursoragent@cursor.com>
font-jetbrains-mono-nerd-font and font-fira-code-nerd-font were declared as Homebrew casks here while home.nix already installs the same fonts natively via nix (nerd-fonts.jetbrains-mono, nerd-fonts.fira-code). Drop the Homebrew duplicates so fonts have a single source of truth per CLAUDE.md section 2. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
lt was changed to full-depth eza tree listing with lt2 carved out as the capped-at-2-levels variant (former lt default), but the intent was undocumented. Add a one-line comment so the split doesn't need to be reverse-engineered from history. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
home.nix declares mkOutOfStoreSymlink entries for .config/herdr and
Documents/workspace/my-matrix/a-utils/cheatsheets, but verify.sh had
no corresponding checks, contrary to CLAUDE.md section 6 ("new
symlink added in home.nix -> add a check_resolves_to_repo call").
herdr uses the existing check_resolves_to_repo (hard fail if
missing), since ~/.config/herdr is guaranteed once home-manager
applies. The cheatsheets symlink target lives under an external
workspace (Documents/workspace/my-matrix) that isn't part of this
repo and won't exist on every machine it's cloned onto, so hard
failing there would produce a false-negative red X on an otherwise
healthy setup. Added a new check_resolves_to_repo_optional helper
that mirrors check_resolves_to_repo but downgrades "target missing"
to a warn instead of a fail, and used it only for the cheatsheets
check.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…idote era Both are confirmed dead residue from the pre-migration Homebrew + antidote setup. The real ~/.zshrc is now home-manager-generated from home.nix's programs.zsh block; antidote is retired. Neither file is referenced by bootstrap.sh, rebuild.sh, or home.nix, and docs/inventory.md already asserted both no longer exist. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
modern-cli-cheatsheet.md claimed configs live in configs/ or the root .zshrc — neither exists anymore post-migration (see prior commit). Configs now live under home/.config/* (edit-in-place symlinks) or are home-manager-generated from home.nix's programs.zsh/programs.starship blocks. homebrew-cheatsheet.md's example team Brewfile still listed brew "antidote", which is retired and could mislead a reader copying the example. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
configs/gitconfig existed solely to carry delta/merge/pager config, wired into ~/.gitconfig via bootstrap.sh's include.path, because home-manager's programs.git was believed to make ~/.gitconfig an immutable Nix-store symlink. Verified against the exact home-manager revision pinned in flake.lock (af2beae5f0fae0a4310cc0e6aef2572f56090353, release-26.05): programs.git's generated config actually goes to the XDG path ~/.config/git/config, never touching ~/.gitconfig. That justification was stale. - home.nix: enable programs.git with the delta/merge settings migrated in declaratively (core.pager, interactive.diffFilter, delta.navigate/light/line-numbers/side-by-side, merge.conflictStyle). Replaced the stale "deliberately NOT enabled" comment with one explaining the real XDG mechanism. - bootstrap.sh: removed the now-unnecessary include.path wiring block (git already reads ~/.config/git/config alongside ~/.gitconfig with no explicit include needed). Updated nearby comments; identity prompting (default branch, user.name, user.email) is untouched. - Deleted configs/gitconfig and the now-empty configs/ directory, aligning with this repo's established pattern that everything home-related lives under home/ or is declared in home.nix, not in a stray top-level folder. - verify.sh: replaced the two checks tied to the old include.path mechanism with a single check that ~/.config/git/config exists and contains the delta pager config. - Updated README.md (layout table + repo tree), docs/inventory.md, docs/cheatsheets/modern-cli-cheatsheet.md, and AGENTS.md (the CLAUDE.md-symlinked source file) to describe the new flow: identity stays bootstrap.sh-driven via mutable ~/.gitconfig; pager/merge/ delta config is now nix-managed via home.nix, applied to the XDG path. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
home-manager's nix ini renderer quotes string values, so the generated ~/.config/git/config has `pager = "delta"`, not `pager = delta`. Only caught by actually running verify.sh post-rebuild, not by nix flake check or a dry-run build. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Documents herdr's session/workspace/tab/pane model, this repo's tmux-style keybindings, worktree integration, agent detection, and socket API for scripting multi-agent workflows.
herdr already provides tmux-style session/pane management with first-class AI agent integration, making the standalone tmux install redundant.
…istency .tool-versions lived at the repo root, but this repo has no language tooling of its own — the root placement gave it no functional edge over living under home/, which already holds every other edit-in-place file that home-manager symlinks into ~. Move it there and repoint the home.nix symlink, bootstrap.sh's plugin registration, verify.sh's version check, and the README's repo layout/customization docs.
lakshyads05
force-pushed
the
feature/agentic-engineering-specific
branch
from
July 12, 2026 01:55
fc3e8d5 to
343da9a
Compare
Bind open_worktree/remove_worktree in config.toml, document them and the worktrees.directory override in the cheatsheet, and extend .gitignore to catch herdr's timestamped session.json.bak-* backups.
Move the statusline one-liner into ~/.claude/statusline-command.sh and default effortLevel to high.
Cursor ships its own self-updating installer for the `agent` CLI rather than a Nix/Homebrew package, so wire it into bootstrap.sh directly (gated on `command -v agent` for idempotency) and add a verify.sh check alongside the other AI coding CLIs. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Fix herdr's global worktrees.directory override, which mixed agent worktrees with real project repos, and add a wtnew shell function that creates worktrees as siblings of a project's .bare/ dir (discovering the project root and default base branch automatically) with an optional herdr session attached. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Port the /smell code-smell review checklist (Clean Code + Gang of Four + Python-specific catalog, severity-ranked findings) into the open SKILL.md format Claude Code, Codex, and Cursor all read, so it's usable from any of them. One canonical copy lives in home/skills/smell/, symlinked into each tool's skills directory (plus ~/.agents/skills for consistency with this machine's existing personal skill registry).
Move the inline settings.json statusline command into home/.claude/statusline-command.sh, symlinked via home-manager, and add the model's context window size (compact form, e.g. 200k/1M) next to the effort level.
Extracts the Commit messages and Pull request descriptions sections from home/AGENTS.md into dedicated shared skills (home/skills/commit-message and home/skills/pr-description), symlinked into Claude Code, Codex CLI, and Cursor via home.nix like the existing smell skill. AGENTS.md now points at the skills instead of duplicating the rules inline. Updates verify.sh and docs (inventory.md, git-cheatsheet.md) to match, and fixes the smell row's stale symlink-target list in inventory.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Cursor reads ~/.cursor/rules/master-rules.md as always-on global context, so wire it up the same way as the existing Claude/Codex/ opencode symlinks. Also fills in home/AGENTS.md with the behavioral guidelines content and updates inventory/README docs plus verify.sh to match. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
lakshyads05
force-pushed
the
feature/agentic-engineering-specific
branch
from
July 14, 2026 14:03
41bc6ed to
3dd21fc
Compare
herdr worktree open infers its scope from the calling pane and refuses (linked_worktree_source) when run from inside a linked worktree instead of the bare-repo root, so wtnew silently failed to attach a herdr session unless invoked from the root. Passing --cwd with the already-resolved bare-repo root makes the scope explicit regardless of which worktree wtnew is called from. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
lakshyads05
force-pushed
the
feature/agentic-engineering-specific
branch
from
July 14, 2026 19:46
ccd2a3b to
8b0a7d2
Compare
Adds nvim-treesitter (main branch) with parsers for markdown plus mainstream languages (go, java, c/cpp, rust, sql, python, js/ts, etc.), render-markdown.nvim for in-editor markdown/code-block rendering, and nvim-colorizer.lua for inline color swatches. Also adds the tree-sitter CLI to home.nix, since nvim-treesitter's main branch shells out to it to compile parsers.
Codifies two standing preferences into the shared agent rules: never use em dashes, and never auto-add the agent's name as commit co-author.
git clone --bare mirrors origin's branches straight into refs/heads with no tracking info, so any branch that existed on origin at clone time silently skips git's normal upstream auto-setup on checkout. wtnew now backfills missing upstreams after checking out an existing branch, and the from-scratch setup recipe wipes the mirrored refs/heads so future clones don't hit this at all.
lakshyads05
force-pushed
the
feature/agentic-engineering-specific
branch
from
July 15, 2026 13:46
e3fbcc7 to
4f4a15d
Compare
…uidance Fold in conditional rules for subagent use, a SOLID/GoF design gate on large changes, and a pointer to the smell skill for pre-merge reviews.
… refs The prior backfill only fired when refs/remotes/origin/<branch> already existed locally, but git clone --bare never populates that namespace (no remote.origin.fetch is configured), so branches mirrored straight into refs/heads at clone time silently kept no upstream. wtnew now configures remote.origin.fetch and fetches just that one branch from origin before backfilling with set-upstream-to, and skips cleanly if origin has no such branch.
Cursor CLI has no home-directory rules file - it only reads .cursor/rules/, AGENTS.md, and CLAUDE.md from a project's own root, so symlinking behavioral-guidelines.md into ~/.cursor/rules never took effect. Documented the gap in cursor-cli-cheatsheet.md.
lakshyads05
force-pushed
the
feature/agentic-engineering-specific
branch
from
July 17, 2026 16:35
34dede2 to
931e60b
Compare
Previously the branch-exists check only looked at refs/heads/*, so a branch that only existed on origin's remote-tracking ref fell through to the "create fresh from base" path instead of tracking origin. Now origin is queried directly via a targeted fetch first, and if the local branch is absent but origin has it, the worktree is created from origin/$branch so tracking is wired up automatically.
Loosen the ask-before-proceeding rule to only trigger on materially divergent interpretations, and batch small plan decisions instead of asking one by one. Add reviewer evaluation criteria (scale, efficiency, data design, growth, product fit, robustness) to the architecture-plan skill so plans are judged against explicit standards, plus a markdown fallback when the Lavish skill is unavailable.
Previously wtnew errored out any time the target path already existed. Now it checks whether the path is a registered worktree of the bare repo and, if so, just (re)attaches a herdr session instead of failing - so the same command opens an existing worktree or creates a new one. Paths that exist but aren't registered worktrees still error to avoid clobbering unrelated directories.
Neogit hides line numbers by default and hardcodes wrap=false on every window it opens, forcing horizontal scrolling to read long diff lines. Enable line numbers via setup() and re-enable wrap on NeogitStatus/DiffView/CommitView buffers, scheduled to run after Neogit's own window setup so the override isn't clobbered.
baby-menu.
lakshyads05
force-pushed
the
feature/agentic-engineering-specific
branch
from
August 13, 2026 07:18
5f33688 to
83f605e
Compare
Keep extensions, preferences, and agents.json in the repo so widgets and settings travel with the machine, while SQLite/caches stay local.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
About
This PR would contain all initial and incremental the changes to my local setup as I adopt newer workflow patterns as part of my
Agentic AI Engineeringjourney.The initial setup will be heavily inspired by Kun Chen and his L8 Principal's Agentic Engineering Workflow
I will try to modify and evolve this setup naturally as I mature my own way of working (now heavily centered around using agents for mostly everything related to dev and research).